home *** CD-ROM | disk | FTP | other *** search
Wrap
var Cc=Components.classes; var cpvw_search={showPreviewTimer:null,prevLinkElement:null,resize:false,loadingIframe:false,nodeCount:0,engineName:"google",isFirstTime:true,searchTerm:"",init:function(){ this.load(); },changeSize:function(){ var _1=window.top.document.getElementById("sidebar-box").width; cpvw_get("outerBox").style.width=_1+"px"; return; },modifyLinks:function(_2){ for(var i=0;i<_2.length;i++){ if(_2[i].getAttribute("cpvw_attached")=="true"){ continue; } _2[i].setAttribute("cpvw_attached","true"); _2[i].addEventListener("click",function(_4){ _4.preventDefault(); _4.stopPropagation(); var _5=this; conDump("aaaa dsa fdsaf "+_5); if(_4.ctrlKey){ conDump("cpvw search234343 "+_5); var _6=cpvw_search.getMainDocument(); var _7=_6.defaultView; _7.getBrowser().selectedTab=_7.getBrowser().addTab(_5); }else{ cpvw_search.showPreview(_5); } },false); _2[i].addEventListener("mouseover",function(_8){ clearTimeout(cpvw_search.showPreviewTimer); var _9=this; if(_8.ctrlKey){ cpvw_search.showPreviewTimer=setTimeout(function(){ cpvw_search.showPreview(_9); },500); } },false); _2[i].addEventListener("mouseout",function(_a){ if(_a.ctrlKey){ clearTimeout(cpvw_search.showPreviewTimer); } },false); } },showPreview:function(_b){ var _c=this.getMainDocument().getElementById("content"); _b=_b.wrappedJSObject; if(_c.contentDocument.URL!=_b.href){ if(_b!=null){ _b.style.color="orange"; } _c.loadURI(_b.href); } },getMainDocument:function(){ var _d=window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow); return _d.document; },load:function(){ if(cpvw_search.isFirstTime){ var _e=this.getMainDocument(); var _f=_e.defaultView; if(cpvw_search.searchTerm!=""){ cpvw_get("cpvw_searchFrame").loadURI(this.engine().searchUrl.replace("$$",encodeURIComponent(this.searchTerm))); }else{ cpvw_get("cpvw_searchFrame").loadURI(this.engine().home); } cpvw_get("cpvw_searchFrame").removeEventListener("load",cpvw_search.searchFrameLoad,true); cpvw_get("cpvw_searchFrame").addEventListener("load",cpvw_search.searchFrameLoad,true); cpvw_get("outerBox").style.width=this.engine().width+"px"; window.top.document.getElementById("sidebar-box").width=this.engine().width; } return; },searchFrameLoad:function(){ this.loadingIframe=false; var _10=cpvw_get("cpvw_scrollFrame"); _10.loadURI("chrome://cooliris/content/coolirisBlank.htm"); this.nodeCount=0; cpvw_get("cpvw_searchFrame").contentWindow.addEventListener("scroll",cpvw_search.onScroll,true); var doc=cpvw_get("cpvw_searchFrame").contentDocument; var _12=doc.evaluate(cpvw_search.engine().searchBox,doc.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); for(var i=0;i<_12.snapshotLength;i++){ contentNode=_12.snapshotItem(i); } if(contentNode){ cpvw_search.searchTerm=contentNode.value; } var _14=doc.getElementsByTagName("a"); cpvw_search.modifyLinks(_14); doc.addEventListener("DOMNodeInserted",function(evt){ var _16=evt.target; var _17; if(_16 instanceof HTMLLinkElement){ _17=[]; _17.push(_16); cpvw_search.modifyLinks(_17); }else{ if(_16.getElementsByTagName){ _17=_16.getElementsByTagName("a"); cpvw_search.modifyLinks(_17); } } },false); },onScroll:function(evt){ var wnd=cpvw_get("cpvw_searchFrame").contentWindow; if(wnd.scrollY>wnd.scrollMaxY-(wnd.scrollMaxY/4)){ cpvw_search.fetchData(); } },fetchData:function(){ conDump("fetch data"); if(cpvw_search.loadingIframe){ return; } cpvw_search.loadingIframe=true; var _1a=cpvw_get("cpvw_searchFrame").contentDocument; if(!cpvw_get("cpvw_end",_1a)){ var _1b; var _1c=_1a.evaluate(cpvw_search.engine().contentXPath,_1a.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); if(_1c.snapshotLength==0){ return; } for(var i=0;i<_1c.snapshotLength;i++){ _1b=_1c.snapshotItem(i); } if(!_1b){ return; } var _1e=_1a.createElement("DIV"); _1e.setAttribute("id","cpvw_end"); if(_1b){ _1b.parentNode.insertBefore(_1e,_1b.nextSibling); } } var _1f=""; var _20=cpvw_get("cpvw_scrollFrame"); var _21=_20.contentDocument; var _22=(_21.URL=="chrome://cooliris/content/coolirisBlank.htm")?_1a:_21; var _23=_22.evaluate(cpvw_search.engine().linkXPath,_22.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); if(_23.snapshotLength==0){ return; } for(var i=0;i<_23.snapshotLength;i++){ _1f=_23.snapshotItem(i).href; } cpvw_get("cpvw_scrollFrame").removeEventListener("load",cpvw_search.scrollFrameLoad,true); cpvw_get("cpvw_scrollFrame").addEventListener("load",cpvw_search.scrollFrameLoad,true); _20.loadURI(_1f); conDump("fetchData "+cpvw_search.nodeCount+", "+_1f); },scrollFrameLoad:function(){ conDump("scrollFrameLoad "+cpvw_search.nodeCount); try{ var _24=cpvw_get("cpvw_scrollFrame"); var _25=_24.contentDocument; if(_25.URL=="chrome://cooliris/content/coolirisBlank.htm"){ return; } var _26=cpvw_get("cpvw_searchFrame").contentDocument; var _27=cpvw_get("cpvw_end",_26); var _28; var _29=_25.evaluate(cpvw_search.engine().contentXPath,_25.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); if(_29.snapshotLength==0){ return; } for(var i=0;i<_29.snapshotLength;i++){ _28=_29.snapshotItem(i); } if(_27){ _27.parentNode.insertBefore(_28.cloneNode(true),_27); } } catch(ex){ alert(ex); } cpvw_search.loadingIframe=false; cpvw_search.nodeCount++; },changeEngine:function(_2b){ this.engineName=_2b; this.load(); },engine:function(){ return cpvw_searchEngine[cpvw_search.engineName]; },unload:function(){ }}; var cpvw_searchEngine={"google":{"home":"http://www.google.com","linkXPath":"id(\"nav\")//td[last()]/a","contentXPath":"id(\"res\")","width":620,"linkParentTag":"li","searchBox":"//input[@name='q']","searchUrl":"http://www.google.com/search?q=$$"},"bing":{"home":"http://www.bing.com","linkXPath":"id(\"results_container\")//a[@class=\"sb_pagN\"]","contentXPath":"id(\"results_container\")","width":720,"linkParentTag":"li","searchBox":"id(\"sb_form_q\")","searchUrl":"http://www.bing.com/search?q=$$"},"yahoo":{"home":"http://www.yahoo.com","linkXPath":"id(\"pg-next\")","contentXPath":"id(\"web\")","width":720,"linkParentTag":"li","searchBox":"//input[@name='p']","searchUrl":"http://search.yahoo.com/search?p=$$"}};